package review.Day_0404;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author zxc
 * @date 2023/04/04 17:22
 **/
public class Solution02 {
    // 思路 ：即，使用队列来实现滑动窗口;
    Queue<Integer> queue;
    int maxSize;
    int nowSize;
    // 统计队列中所有元素值之和
    int sum;
    public Solution02(int size) {
        queue = new LinkedList<>();
        this.maxSize = size;
        this.nowSize = 0;
        this.sum = 0;
    }

    public double next(int val) {
        // 无论何种情况，该元素val是必然会被插入到队列中的;
        queue.offer(val);
        // 队列已满的情况 ：
        if(nowSize == maxSize){
            Integer poll = queue.poll();
            sum += val - poll;
            return sum * 1.0 / maxSize;
        }
        // 队列还未到达最大容量maxSize的情况 ：
        sum += val;
        nowSize++;
        return sum * 1.0 / nowSize;
    }
}
